Skip to content
字数
822 字
阅读时间
4 分钟

SPA和MPA

SPA

single-page application,简称 SPA
——是一种在 web 页面初始化就加载完相应的 HTML 、JavaScript 和 CSS

  • 一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转
  • HTML 内容的变换UI 与用户的交互 取决于路由机制的实现,避免了页面的重新记载

优点

  • 用户体验好、快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染
  • 基于上面一点,SPA 相对服务器压力小
  • 前后端职责分离,架构清晰,前端进行交互逻辑,后端负责数据处理

缺点

  • 初次加载耗时多:为实现单页 Web 应用功能及显示效果,在初次加载时将 JavaScript 和 CSS 统一加载,部分页面按需加载
  • 前后退路由管理:由于单页面应用是在一个页面显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理
  • 不利于 SEO:由于所有的内容都在一个页面进行动态切换显示,所以在 SEO 上有着天然的劣势

SEO

SEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据领先地位,获得品牌收益。很大程度上是网站经营者的一种商业行为,将自己或自己公司的排名前移。 — 百度百科

SEO 参数指标:

  1. 搜索引擎对网站收录的数量
  2. 网站的索引量(和收录的差异:收录会展示给用户)
  3. 反链/正链
  4. 关键词
  5. TDK(多个页面) …

SEO 关注点:

  1. SEO 优化重要的还是网站的主题,内容,关键字,原创文章,更新频率。(重要)
  2. 增加友链和反链
  3. 每个页面进行 TDK (标题,关键字和描述)
  4. 整天页面量(可以被爬虫爬到)

SPA 未优化的 SEO 举例

搜索引擎爬虫在抓取这样的页面的时,在未做任何优化的情况下,通常拿到的是类似下面的字符文本,

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>
<div id="root"></div>
<script src="index.js"></script>
</body>
</html>

除了可以事先定义的 title(可能 title 也不能事先确定),在 SPA 下很多内容需要通过 ajax 请求 server 拿到数据通过脚本执行产生。通常爬虫不会有类似浏览器的执行环境去产生这些内容。

优化方案

  • SSR(Server-side Render — 服务器端渲染)
  • Prerender(预渲染)

具体方案参考:关于SPA的SEO解决方案 | medium

参考

关于SEO的研究和SPA 项目得SEO优化
关于SPA的SEO解决方案 | medium

贡献者

The avatar of contributor named as jiechen jiechen

页面历史

撰写